home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 February / Macworld (1998-02).dmg / Inside Macworld / Alphamania 2 & Effector Sets / AlphaMania 2 / Set FX.dir / 00091_Script_Pointer Object < prev    next >
Text File  |  1997-12-19  |  3KB  |  96 lines

  1. property pPointerSprite, pTextSprite, pTextField, pCurVal, pCallBackObj, pRefcon
  2. property pRange, pMin, pMax, pSliderLeft, pSliderWidth, pActive
  3.  
  4. on new me, proplist
  5.   set pPointerSprite = getAProp(proplist,#thumbSprite)
  6.   set pTextSprite = getAProp(proplist,#textSprite)
  7.   set pTextField = getAProp(proplist,#textField)
  8.   set pMin = getAProp(proplist,#min)
  9.   set pMax = getAProp(proplist,#max)
  10.   set pCurVal = getAProp(proplist,#cur)
  11.   set pRange = pMax - pMin
  12.   set pActive = getAProp(proplist,#active)
  13.   set pSliderLeft = getAProp(proplist,#left)
  14.   set pSliderWidth = getAProp(proplist,#width)
  15.   set pActive = getAProp(proplist,#active)
  16.   set pCallBackObj = getAProp(proplist,#callback)
  17.   set pRefCon = getAProp(proplist,#ref)
  18.   
  19.   setVal(me,pCurVal)
  20.   setEnabled(me,pActive)
  21.   
  22.   return(me)
  23. end
  24.  
  25. on Drag me
  26.   if not pActive then exit
  27.   repeat while the stillDown
  28.     put min(max(the mouseH,pSliderLeft),pSliderLeft+pSliderWidth) into h
  29.     set the locH of sprite pPointerSprite = h
  30.     updateStage
  31.     set loc = the locH of sprite pPointerSprite - pSliderLeft   
  32.     set newVal = ((pRange*loc)/(pSliderWidth))+pMin   
  33.     SetVal(me, newVal)
  34.     if objectP(pCallBackObj) then DoDrag(pCallBackObj, pRefcon, newVal)
  35.   end repeat
  36.   if objectP(pCallBackObj) then EndChange(pCallBackObj)
  37. end
  38.  
  39. on CalcVal me, numerator, denom, otherDenom
  40.   set val = (otherDenom * numerator) / denom
  41.   return(val)
  42. end
  43.  
  44. on TextOut me
  45.   if voidP(pCurVal) then put " " into field pTextField
  46.   else put string(integer(pCurVal)) into field pTextField
  47. end
  48.  
  49. on keyBoardInputDown me, k
  50.   if not pActive then exit
  51.   if "-0123456789"&BACKSPACE contains k then
  52.     pass
  53.   else
  54.     dontpassevent
  55.   end if
  56. end
  57.  
  58. on keyBoardInputUp me, k
  59.   if not pActive then exit
  60.   put (field pTextField) into v
  61.   if v = "-" then put -0 into v
  62.   else put value(v) into v
  63.   if v < pMin then put string(pMin) into field pTextField
  64.   else if v > pMax then put string(pMax) into field pTextField
  65.   set pCurVal = value(field pTextField)
  66.   changeNumber(pCallBackObj, pCurVal, pRefcon)
  67.   puppetSprite pPointerSprite, TRUE
  68.   set loc = CalcVal(me, pCurVal-pMin, pRange, pSliderWidth)
  69.   set the locH of sprite pPointerSprite = pSliderLeft + loc
  70.   if objectP(pCallBackObj) then DoDrag(pCallBackObj, pRefcon, pCurVal)
  71.   if objectP(pCallBackObj) then EndChange(pCallBackObj, pRefcon, pCurVal)
  72. end
  73.  
  74. on SetVal me, newVal
  75.   puppetSprite pPointerSprite, TRUE
  76.   set pCurVal = newVal
  77.   if voidP(newVal) then put max(0,pMin) into newVal
  78.   TextOut(me)
  79.   set loc = CalcVal(me, newVal-pMin, pRange, pSliderWidth)
  80.   set the locH of sprite pPointerSprite = pSliderLeft + loc
  81.   --updateStage
  82. end
  83.  
  84. on SetEnabled me, enabled
  85.   set pActive = enabled
  86.   enableInterfaceElement(pPointerSprite,enabled)
  87.   enableInterfaceElement(pTextSprite,enabled)
  88. end
  89.  
  90. on Release me
  91.   -- release all puppets, constraints, etc.
  92.   puppetSprite pPointerSprite, FALSE
  93. end
  94.  
  95.  
  96.